<?php
require_once $_SERVER[DOCUMENT_ROOT].'/clientes/src/lib/db/ConnectionDB.php';

class Video{
	
	//----------------------------------------------------------------------------
	//Constantes
	//----------------------------------------------------------------------------
	
	//----------------------------------------------------------------------------
	//Delimitador de la tabla
	//----------------------------------------------------------------------------
	
	/**
	 * El constrains de la clase
	 */
	private static $table_name = "video";
	private static $constrains = array(	array("id",			ConnectionDB::INT,					ConnectionDB::NOT_NULL, ConnectionDB::PRIMARY_KEY,	ConnectionDB::NO_DEFAULT_VALUE),	//El id
										array("id_producto",ConnectionDB::INT,					ConnectionDB::NOT_NULL,	ConnectionDB::INDEX_KEY,	ConnectionDB::NO_DEFAULT_VALUE),	//El tipo
										array("nombre",		ConnectionDB::STRING_NAME,			ConnectionDB::NOT_NULL, ConnectionDB::INDEX_KEY ,	ConnectionDB::DEFAULT_VALUE),		//El nombre
										array("ruta",		ConnectionDB::STRING_BLOG,      	ConnectionDB::NOT_NULL, ConnectionDB::NONE_KEY ,	ConnectionDB::DEFAULT_VALUE),	//la ruta
										array("descripcion",ConnectionDB::STRING_LONG_COMMENT,	ConnectionDB::NNULL,	ConnectionDB::NONE_KEY,		ConnectionDB::DEFAULT_VALUE));		//La contrasenia

	//----------------------------------------------------------------------------
	//Atributos
	//----------------------------------------------------------------------------								
	
	/**
	 * Id del video
	 */
	private $id;
	
	/**
	 * Nombre del video
	 */
	private $nombre;
	
	/**
	 * Ruta del Video
	 */
	private $ruta;
	
	/**
	 * Descripci�n del video
	 */
	private $descripcion;
	
	/**
	 * Id del producto
	 */
	private $id_producto;
	
	/**
	 * V�nculo con la Tabla en la Base de Datos
	 */	
	private $table;
	
	//----------------------------------------------------------------------------
	//M�todo constructor
	//----------------------------------------------------------------------------
	
	public function __construct($id = 0, $id_producto = 0, $nombre = "", $ruta = "",$descripcion = ""){
		$this->id = $id;
		$this->id_producto = $id_producto;
		$this->nombre = $nombre;
		$this->ruta = $ruta;
		$this->descripcion = $descripcion;
		
		//Realiza lo debido a la base de datos
		$connection = new ConnectionDB($_SESSION['USER_NAME'],$_SESSION['USER_PASS']);
		$this->table = $connection->get_table(Video::$table_name, Video::$constrains);
	}
	
	//----------------------------------------------------------------------------
	//Getters y Setters B�sicos de la Clase
	//----------------------------------------------------------------------------

	/**
	 * Retorna el Id de la instancia
	 */
	public function get_id(){
		return $this->id;
	}
	
	/**
	 * Retorna el Id del producto
	 */
	public function get_id_producto(){
		return $this->id_producto;
	}
	
	/**
	 * Retorna la ruta del video
	 */
	public function get_ruta(){
		return $this->ruta;
	}
	
	/**
	 * Retorna el nombre del video
	 */
	public function get_nombre(){
		return $this->nombre;
	}
	
	/**
	 *Retorna la descripci�n del video
	 */
	public function get_descripcion(){
		return $this->descripcion;
	}
	
	/**
	 * Modifica el nombre del video
	 */
	public function set_nombre($nombre){
		$this->nombre = $nombre;
	}
	
	/**
	 * Modifica la descripci�n del video
	 */
	public function set_descripcion($descripcion){
		$this->descripcion = $descripcion;
	}
	
	//----------------------------------------------------------------------------
	//Busqueda en la Base de Datos
	//----------------------------------------------------------------------------
	
	public static function search_by_ruta($ruta){
		$video = new Video();
		
		$params = array(array("ruta",$ruta));
		$response_id = 	$video->table->get_value_by_field("id", $params);
		
		$answer = array();
		
		foreach($response_id as $i => $value){
			$user = new Video($response_id[$i]);
			$user->update_from_database();
			
			$answer[] = $user;
		}
		return $answer;
	}
	
	public static function search_by_id_producto($id_producto){
		$video = new Video();
		
		$params = array(array("id_producto",$id_producto));
		$response_id = 	$video->table->get_value_by_field("id", $params);
		
		$answer = array();
		
		foreach($response_id as $i => $value){
			$user = new Video($response_id[$i]);
            $user->update_from_database_by_id();
			
			$answer[] = $user;
		}
		return $answer;
	}
	
	//----------------------------------------------------------------------------
	//Actualizaci�n con la Base de Datos
	//----------------------------------------------------------------------------
	
	/**
	 * Actualiza la informaci�n en la Base de Datos
	 */
	public function update_database(){
		$params = array(array("nombre",		$this->nombre),
						array("id_producto",$this->id_producto));
		$this->table->update($params);
		$this->id = $this->table->get_id();
		
		$parametros = array(	array("ruta",		$this->ruta),
								array("descripcion",$this->descripcion));
		$this->table->update_by_id($this->id,$parametros);
	}
	
	/**
	 * Actualiza la informaci�n desde la Base de Datos seg�n el id
	 */
	public function update_from_database_by_id(){
		$params = array(array("id",$this->id));
		
		//Toma los valores
		$id_producto =	$this->table->get_value_by_field("id_producto",	$params);
		$ruta = 		$this->table->get_value_by_field("ruta",		$params);
		$nombre =		$this->table->get_value_by_field("nombre",		$params);
		$descripcion = 	$this->table->get_value_by_field("descripcion",	$params);
		
		$this->id_producto = $id_producto[0];
		$this->ruta = $ruta[0];
		$this->nombre = $nombre[0];		
		$this->descripcion = $descripcion[0];
	}
}
?>